{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import cv2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "img = cv2.imread('italy2018.jpg')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[38, 43, 11],\n",
       "       [37, 42, 10],\n",
       "       [36, 41,  9],\n",
       "       ..., \n",
       "       [24, 37, 15],\n",
       "       [22, 36, 12],\n",
       "       [23, 36, 12]], dtype=uint8)"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "img[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "-1"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cv2.imshow('Image', img)\n",
    "cv2.waitKey(0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "cv2.imshow('Image', img) \n",
    "cv2.waitKey(2000)\n",
    "cv2.destroyWindow('Image')\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "b,r,g = cv2.split(img)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "img2 = cv2.merge((b,g,r))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "cv2.imshow('Image2', img2) \n",
    "cv2.waitKey(0)\n",
    "cv2.destroyAllWindows()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "True"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cv2.imwrite('italy2018altered.png', img2) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "-1"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "img2 = cv2.imread('soccer.jpg')\n",
    "cv2.imshow('Image2', img2) \n",
    "cv2.waitKey(0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "-1"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "img3 = cv2.add(img,img2)\n",
    "cv2.imshow('Sum',img3)\n",
    "cv2.waitKey(0)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "-1"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "img3 = cv2.subtract(img, img2)\n",
    "cv2.imshow('Sub1',img3)\n",
    "cv2.waitKey(0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "-1"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "img3 = cv2.subtract(img2, img)\n",
    "cv2.imshow('Sub1',img3)\n",
    "cv2.waitKey(0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "-1"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "img3 = img + img2\n",
    "cv2.imshow('numpy',img3)\n",
    "cv2.waitKey(0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "-1"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "img3 = cv2.addWeighted(img, 0.3, img2, 0.7, 0)\n",
    "cv2.imshow('numpy',img3)\n",
    "cv2.waitKey(0)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# The edge Detection"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x2690b8fe390>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from matplotlib import pyplot as plt\n",
    " \n",
    "img = cv2.imread('blackandwhite.jpg',0)\n",
    " \n",
    "laplacian = cv2.Laplacian(img, cv2.CV_64F)\n",
    "sobelx = cv2.Sobel(img,cv2.CV_64F,1,0,ksize=5)\n",
    "sobely = cv2.Sobel(img,cv2.CV_64F,0,1,ksize=5)\n",
    " \n",
    "plt.subplot(2,2,1),plt.imshow(img,cmap = 'gray')\n",
    "plt.title('Original'), plt.xticks([]), plt.yticks([])\n",
    "plt.subplot(2,2,2),plt.imshow(laplacian,cmap = 'gray')\n",
    "plt.title('Laplacian'), plt.xticks([]), plt.yticks([])\n",
    "plt.subplot(2,2,3),plt.imshow(sobelx,cmap = 'gray')\n",
    "plt.title('Sobel Y'), plt.xticks([]), plt.yticks([])\n",
    "plt.subplot(2,2,4),plt.imshow(sobely,cmap = 'gray')\n",
    "plt.title('Sobel Y'), plt.xticks([]), plt.yticks([])\n",
    " \n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x2690b891860>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "laplacian = cv2.Laplacian(img, cv2.CV_8U)\n",
    "sobelx = cv2.Sobel(img,cv2.CV_8U,1,0,ksize=5)\n",
    "sobely = cv2.Sobel(img,cv2.CV_8U,0,1,ksize=5)\n",
    "plt.subplot(2,2,1),plt.imshow(img,cmap = 'gray')\n",
    "plt.title('Original'), plt.xticks([]), plt.yticks([])\n",
    "plt.subplot(2,2,2),plt.imshow(laplacian,cmap = 'gray')\n",
    "plt.title('Laplacian'), plt.xticks([]), plt.yticks([])\n",
    "plt.subplot(2,2,3),plt.imshow(sobelx,cmap = 'gray')\n",
    "plt.title('Sobel Y'), plt.xticks([]), plt.yticks([])\n",
    "plt.subplot(2,2,4),plt.imshow(sobely,cmap = 'gray')\n",
    "plt.title('Sobel Y'), plt.xticks([]), plt.yticks([])\n",
    " \n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWQAAADbCAYAAABa8Os0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzt3X18U/XZP/DPlZOcpEmaJil9IG0h\nQpFa+/JXHgQGRcYYzk4B5xzgrQN1e8F0E90q8/Z2T+o2NmX33O0Y081HhsJ9e/sA9yYg7EEnCiKb\nMpFNxkCkVKClj0mbJrl+fySppRaatEnOSXq9X6/v6wXJOSfXab+9cp3v+Z5ziJkhhBBCewatAxBC\nCBEhCVkIIXRCErIQQuiEJGQhhNAJSchCCKETkpCFEEInJCEPEhH9BxH9OtnLxrEtJqLyZGxLiLMh\nIm+0rxmHuJ0XiWhpsuLKdiTzkCOI6HoAdQDGAmgF8ByAO5m5Wcu4+iIiBjCOmQ9qHYvQDyI6DODL\nzLw9SdvzAvgXABMzB5OxTTEwqZABEFEdgB8DWAkgD8A0AKMBvEREaj/LD6lqEEKI/gz7hExEDgB3\nA7iFmbcwczczHwawEJGkfB0RfY+IniGi3xBRK4Dro6/9ptd2lhDRESJqJKJvE9FhIvp09L2eZXsd\nCi4loveJ6BQR3dVrO1OI6DUiaiai40T08/6+FIQYCBG5iOj/iOgkEZ2O/ru01/t/JKJVRLSbiFqI\n6AUicp9lWzcQ0btE1EZEh4hoeZ/3FxDRX4molYj+SUSX9fqML0f/PZaIfh/9GzlFROuJyNlrG4eJ\n6HYiejsaz0YisqTmp6NPwz4hA5gOwALg2d4vMnM7gBcBzI2+tADAMwCcANb3XpaIKgH8AsC1AEYi\nUmWXDPC5NQDGA5gD4DtEdEH09RCArwMYAeAT0fdvHsR+CWEA8BgihcUoAH4AP++zzBIANwLwAAgC\n+K+zbOsEgCsAOADcAOCnRDQRiBQRAJ5E5AjTCeASAIf72QYBWBX9rAsAlAH4Xp9lFgK4DMB5AC4C\ncP3Au5k9JCFHEt+ps4yTHY++DwCvMfPzzBxmZn+f5a4GsJmZ/8zMAQDfATDQ4PzdzOxn5rcAvAXg\n/wEAM7/JzK8zczBaqT8EYNbgdk0MZ8zcyMz/y8w+Zm4D8AN8vC+tY+a/MXMHgG8DWEhESj/b+i0z\n/5Mj/gRgG4CZ0be/BOBRZn4p+vdxjJkP9LONg9Flupj5JID/7Cee/2LmemZuArAZQPVQfgaZRsZC\ngVMARhCRsZ+kPDL6PgAcPcc2PL3fZ2YfETUO8LkNvf7tA2AHACI6H5GOOhmAFZHf0ZsD7YQQfRGR\nFcBPEak4XdGXc4lIYeZQ9P+9+/URACZ8VIT03lYtgO8COB+RQs4KYF/07TIAv4sjnkJEKvCZAHKj\n2zndZ7G+fxeegbabTaRCBl4D0AXgqt4vEpENQC2AHdGXzlXxHgfQe2wuB0D+IONZC+AAIjMpHAD+\nA5FDPSESVYfIsNjUaF+6JPp67/5U1uvfowB046MiJLIwkRnA/wJYDaCImZ2IJODYdo4iMjtpIKsQ\n+Tu6KBrPdZC+fYZhn5CZuQWRk3oPEtFlRGSKTvn5HwAfAFgXx2aeATCPiKZHT8DdjcF3tFxEpt21\nE1EFgJsGuR0x/JiIyBJriFTFfgDN0ZN13+1nneuIqDJaTd8D4Jle1XOMCsAM4CSAYLRavrTX+48A\nuIGI5hCRgYhKon23r1wA7dF4ShAZcxa9DPuEDADMfB8ilehqRJLhLkS+9ecwc1cc678D4BYAGxCp\nltsQOQky4Lr9uB3Av0W38SsAGwexDTE8/Q6RBBxrTgA5iFS8rwPY0s866wA8jshQgQXAir4LRMef\nVwD4b0SGGP4NwKZe7+9G9EQfgBYAf0LkRGJfdwOYGF3mt+hzIl3IhSEpQUR2AM2IDDv8S+t4hOgP\nEf0RwG+YOSlXkYqhkwo5SYhoHhFZo2PPqxE54XFY26iEEJlEEnLyLABQH23jACxmOfwQQiRAhiyE\nEEInpEIWQgidkIQshBA6kdCVetFbPwqRMsyc9gsFpF+LVIu3X0uFLIQQOiEJWQghdEISshBC6IQk\nZCGE0AlJyEIIoROSkIUQQickIQshhE5IQhZCCJ2QhCyEEDohCVkIIXRCErIQQuiEJGQhhNAJSchC\nCKETWZOQjUYjwuEwjMbIDeyIht/TxQ2Gj36d3d3dGkYikkVVVRgMBvh8Ptjt9jN+x8OFwWCA2+0G\nAOTk5GgcTWplzW/XaDSCmdHZ2YlwOAyz2ax1SGlnNpvR1tYGv9/f88UkMpvb7YbJZILdbkcwGERp\naanWIaXdoUOH4Ha74fV6s/7vOqFHOOn5vrEGgwGhUOiM14ZDlWwymXqq4b6/y0zcf7kf8pmMRiNC\noRCYGaqqIhgMQlVVOJ1ONDQ0aB1eyrhcLvj9fvh8vqw4Khj290NmZjAzwuGw1qGkVGw/g8Gg1qGI\nNLBYLAiFQjhw4ACAzPzSjUcsEdvtdq1DSausTcixjkpE6Orqyopv2b6Yuac6VhRF42hEqgUCAfh8\nPnR3d8PpdGLEiBFQVRUOh0Pr0JLG5XIhFArBbDbD5/PB5/NpHVJaZV+W6oeqqgiFQgiFQjAYDDCZ\nTFqHlDCDwQCj0dgTvzwtXJw6dQrBYBCnTp2CoihwOp1ah5Qwk8kEp9MJs9mMI0eO4PTp01AUBa2t\nrVqHpolhkZBjiAidnZ0ZecIrHA73xD9cO6v4uFAoBKfTCbvdjtdff13rcBJmsVgQCATAzJgwYYLW\n4Wguq0/qnUvsZAkR6b7ajJ24SzTOTBxflJN6Z+p9Ui8eRARFURAOh+F0OtHU1JTiCAfP7XajubkZ\nFosl64cmhv1JvYG0t7cjHA5nxNhyc3Mzurq65MSdGNDo0aMRCoV0fxRoNBpRUFCAwsJCOf/RS8oq\nZIPBkPYZDoOpdEOhEEwmU09lobcLKmJDFYOR7grZZDLBYDCgq6tr0NvQc4UcqzzTKTbvtrOzM6H1\nVFVFW1sbrFYr7HY7WlpaUhFeQogIFosFZrMZ7e3tgy4w0t2vnU4nVFXFhx9+OOhtxNuvU/Y1Gg6H\n0zoUMNg/FEVRemZh6GnSeXd395CSMTC4L6ihiA0BZWvFE6s803mkMpihKiDSrz0eD8xmM/x+f89r\niQzrJUusD5tMJiiKMuTqPd39urOzEw0NDWnJDykdQ9b72Gx/iEiT6j722UTU80eYqYltiF8iuq2Q\nAW2O/IaioKAAXV1d8Pv9ICLk5eXh5MmTaY3BYrGgqakJTqezZxrqcBNvv5aE3A9mhsFgSOsfn8lk\nQiAQSMtnpZokZP2IfcnHfidGoxFEhEAgkNL9MJvN6OrqgtPpRHNzM4BIhU5Ew/JciJzUGwIiQjgc\nhqqqsFgsKf88VVWzJhkLfYldrRobTgoEAigsLITH40np56qqiqNHj55xTiYUCg3LZJwIqZDPIdaJ\nLRZLUk/2mUwmhMNhKIrSc4loJk5ROxupkPXNbrfj9OnTKCoqQnd3N9ra2oa8zREjRiAYDKK1tRWF\nhYVobGzs+SIQUiEnRayiCAQCSb26r7u7G52dnejo6OhJ+kKkSzAYxNixYxEIBJI27bOtrQ0mkwmN\njY1obW1FXl4eXC5XUrY9nEiFnIBY4hzM2WpVVXtO1vn9/rQMhWhFKuTMEgqFYLVaEQ6HEz4SjJ00\n7OrqQlFREd5///0URZnZpEJOgdjNfAbzRRObxha7jaIQemG323HixIlBDS+cPn0ax48fBzPj+PHj\nKYhueJGEnKBE56HGDgl7V1WZcHWgGD78fj9GjRqFnJwchEIh5ObmnnP5goKCnvnmJpMJXq8XgUBA\ndxdVZSIZshiicx2ex65a0/tlrMkmQxaZK5ZkDQYDAoFAv8WHoijIyclBMBhEMBhM6F4bw5UMWaRY\n70tZz5ZwzWbzsEvGIrN5PB7k5OQgNzcXNput32WKi4t7ZgYFg0FJxkkkFfIgBAIB5OTkJFQpxaoJ\nPV2enSpSIWcel8uFQCCAlpYWuN3uAW/xajAYYLPZEAqF4HA4svpxUskgFXKKhEIhWCyWhE/M2Ww2\nmd4mdMvv9yMUCmHMmDFxXdrMzAiFQsjJycG+ffvSEOHwIBVyAmL3ph2q2NVT2XpyTyrkzOBwOBAO\nh1FfXz/kx0DFquVAIABVVRO+O122kwo5iWIXhiQjGZvN5p4bCAmhJSLCoUOHMHbs2CGf63C5XGBm\nFBUVZfUc+1STCjkOqRxqCAaD6O7uzqpOLBWyvrndbpw6dQo2m62n/yWLzWaD3W5He3s7CgoKcPjw\n4aRtO5Npfj/kbKCqas+0n1Q86klVVRiNxqz54hL6FXsMGAC88847MJlMsFqtSb+pVexWAB0dHWhr\na8vaYblUkQr5LNJ9Ak5V1ay5T6xUyPpiMBiQl5fXcxfD2O0w06G4uLjnBkbD+Y6GMoacoNiJtt73\njk2n2FQ6ABl7i0K5QEB/FEWBoihobm5GW1sbOjo60vr5DQ0NyM3Nhc/ng91uH/AqQD1KxZHE2ciQ\nRVTsSSFaCofDsFqt6O7uRiAQyLhpcoqiDOsqSI9sNlvPUEXs7oXp1t7ejvLycoRCoYw8mc3MaGxs\nTMtnpXTIIp1UVYXf708oqcY6R+whp3pjNBqH1IH1uE8D0fuQBZDeobiGhgaUlZXFfdQUm+0QG8e1\n2Wzo7Ozsea6eHpw4cQJjxoyBwWDouQVttht2J/UGU1H2TcR6Gx8MBoO6i0mk94suNowVr/b2dgDo\neZho7AIOPbngggvQ3d0Nl8uV9iEUvcuaMeR4n7rR3d3d00GtVusZ7+kx8cVu12k2m3vi1lO1I1Kr\nd389F7fbDaPRCEVRUFJSgs7OTvh8PjQ3N+tuGKmxsRFdXV0IBAJ47733kJOTA4vFgvLycq1D01zW\nDFkYDIa4Om4wGEzq0z/SofeUJWbuOSQdiAxZxEfP/Tp2dehAf6d2ux2NjY1wuVwIBoO6S8J9KYqC\nvLw8dHZ2QlEUtLa2QlGUnkeb6a2qHypdPHU6neJNyJmYpHozGAxQFAVdXV0D7ksm7qsk5DPFk5DD\n4TCcTicsFgtOnDiRxuiSJzYvOvYQh9jQS7aQhIzINCxFUQBkZnIaSOx3d7bpepm4z5KQz9RfQrZY\nLAgGg8jJyUFraysMBkPPUVOmTjuMVcWxk/MWi6XnbzpTp4H2JvOQgZ7Dtmy95WXsfsvd3d0ZmXzF\n4Hg8HjgcDlitVjidzp4knKnJGEBPMWW321FcXAyj0QiHwwG73a5xZOmVlRVybHZC7PBejyfrkqn3\n9Ljed5HLxCQtFfKZelfIsTuqdXR0QFXVrBtn7cvpdOLYsWNwuVwIh8MZXSkP6wrZYDDA4XBk9CFc\nImKHr7HhGZGdurq6UF5e/rHZQdmKiHD++ecDQEZeUDIYWVMhG43GnrnImVgZJkNsHC72OPdMHKqR\nCvlMNpsNfr8fZrM56XdmyxRmsxlWqxXHjh2D1+vNyBOXw+6k3nCphgeS6VOGJCGfSVEUqKrac9lz\nJh+2D1Zs6DEUCsFsNmfkPPxhl5BFdpCELLLRsB5DFkKITCQJWQghdEISshBC6IQkZCGE0AlJyEII\noROSkIUQQickIQshhE5IQhZCCJ2QhCyEEDohCVkIIXRCErIQQuhEok+dPgXgSCoCEQLAaI0+V/q1\nSKW4+3VCNxcSQgiROjJkIYQQOiEJWQghdEISshBC6IQkZCGE0AlJyEIIoROSkIUQQickIQshhE5I\nQhZCCJ2QhCyEEDohCVkIIXRCErIQQuiEJGQhhNAJSchCCKETkpCFEEInJCELIYROSEIWQgidkIQs\nhBA6IQlZCCF0QhKyEELohCRkIYTQCUnIQgihE5KQhRBCJyQhCyGETkhCFkIInZCELIQQOiEJWQgh\ndEISshBC6IQkZCGE0AlJyEIIoROSkIUQQickIQshhE5IQhZCCJ2QhCyEEDohCVkIIXRCEvIQEZGX\niJiIjOlcV4hUkn6tDUnIUURUQ0Q7iaiFiJqI6FUiuljDeNYT0aN9XptFRI1ENFKruERmkX6dWSQh\nAyAiB4D/A/AgADeAEgB3A+jSMKwVAD5LRHMBgIgsAH4FoI6Zj2sYl8gQ0q8zjyTkiPMBgJmfZuYQ\nM/uZeRszvw0ARGQgom8R0REiOkFETxJRXp9t3EhE9UR0nIjqYi9G1/13IvpntAr4byJyDxQQMzcC\nuAXAw0RkA/BdAP9k5seTtdMi60m/zjCSkCP+ASBERE8QUS0Rufq8f320zQYwBoAdwM/7LDMbwDgA\nlwL4dyL6dPT1FQCuBDALgAfAaQBr4gmKmf8HwJsAngawDMDyhPZKDHfSrzMNM0tjBoALADwO4AMA\nQQCbABRF39sB4OZey44H0A3ACMALgAFU9Hr/PgCPRP/9LoA5vd4b2c+6xnPEVQSgHcCtWv+MpGVe\nk36dWU0q5ChmfpeZr2fmUgBViHzrPxB92wPgSK/FjyDS8Yp6vXa0z/ue6L9HA3iOiJqJqBmRjhzq\ns+654voQwCkA7yS2R0JIv840kpD7wcwHEKkqqqIv1SPSAWNGIVJtfNjrtbI+79dH/30UQC0zO3s1\nCzMfS0nwQpyF9Gv9k4QMgIgqiKiOiEqj/y8DcA2A16OLPA3g60R0HhHZAfwQwEZmDvbazLeJyEpE\nFwK4AcDG6Ou/BPADIhod3XYBES1Iw26JYU76deaRidsRbQCmAvgGETkBNCMyXWhl9P1HETlUexmA\nBcBWRM4U9/YnAAcR+ZJbzczboq//DAAB2EZEHgAnEOnUL6Rsb4SIkH6dYSg6wC6EEEJjMmQhhBA6\nIQlZCCF0QhKyEELohCRkIYTQCUnIQgihEwlNeyMimZIhUoqZKd2fKf1apFq8/VoqZCGE0AlJyEII\noROSkIUQQickIQshhE5IQhZCCJ2QhCyEEDohCVkIIXRCErIQQuiEJGQhhNAJSchCCKETkpCFEEIn\nJCELIYROZEVCrq6uxqhRo/Dcc8/hscceg8PhQG1tLYqK4noieda4/PLL0dnZiYsuughPPPGE1uGI\nJKiqqsKCBQuwYMECVFVV4corrwRR2u+/pKnly5ejqakJd955J9avX691OCmVFQn54MGDsFgsOHDg\nAO6++268+uqr2Lp1K1wuV1Z3XiICEcFoNMJsNuOXv/wlnnvuOQQCAXg8Hq3DE0NkNBoxffp0BAIB\n/OEPf8Czzz6Lq666Cg6HAzNmzNA6vJQhIowePRputxtlZWUAgHHjxmH//v24+eabNY4uxZg57gaA\n9dicTmdPA8CTJ0/mAwcO8KOPPsp33nmn5vGlql1zzTU8evRoLioq4rVr13J1dXXPe83NzZrHN5iW\nSH9MVtN6n+Nt5eXlvH37dq6pqeHy8nLN40lVKyoq4vHjx3NjYyP7/X6O3h41o1u8fTGh+yFnis7O\nTkyYMAGKomDlypVoa2tDcXExTCYTAKC5uVnjCIfGbrdDVVU8++yzWL16Na666ipMnToVjY2NWocm\nUmjixIloaWnB/PnzYTabsXbtWowfPx4TJkzAww8/jPr6eq1DHBJVVTFlyhTk5OTg0ksvRVVVFebO\nnQuDwYBQKKR1eOmRDZVE3wq5d/N6vdzZ2cktLS28YMEC/vznP695vENt5eXlTER8ySWXcGNjI99/\n//0fW0Yq5Mzv1+dqVquVN2zYwJMmTeJ58+axy+XSPKZktD/96U9cXl7OLS0tPGPGDM3jSVaLty9S\ntEPGRa9PVnA6nT3/7lv9WiwWqKqKOXPmwGKx4NFHH8W8efOwd+9eNDU1pTvUQZs6dSoURcHhw4dx\n++234+abb0Z+fj4MBgPy8/Nx+PDhM5Zvbm4+4+eSKeSJIfExGo2YMmUK8vLy8Nhjj+Haa6/FlClT\n8JOf/ASBQEDr8OI2a9YszJo1C263G/v378cf//hH5OTkwOv1Yt++fTh06JDWISZF3P06GyqJc1XI\nsfazn/2MKysr2Ww281NPPZVxY3D33Xcfv/nmm/z888/ztGnTBlxeKuTM79fxNEVR+HOf+xw/99xz\nXFNTww6HQ/OYEmkjRozgXbt28euvv86jRo3SPJ5Utbj7YjZ03HgSstlsZrPZzEajkX0+H48ePZo3\nbtzINpuNVVXVfB/O1m644QZ2u9384IMPcnV1NSuKwkajccD1JCFnfr+Op5nNZi4vL+cxY8ZwYWEh\nz507l6dOncq1tbV87733ah7f2Vp5eTm73W6+7LLLmJnZ5XKxxWLRPK5UNU0TsqqqrCgKm83mtOxs\nXl4em0wmttlsca9TXV3NBw8e5B07dvDIkSM5JyeHc3JyNP/FAWCDwcAGg4EVReHKyko+ceIEV1VV\ncWlpadxVhBYJOd4vi3M1PSdkq9XKc+fOTVs/IaKeQiLedSorKzkcDvODDz7IM2bM4IKCAs7NzdW0\nP8ea1+vliooKNplMvG7dOq6vr2eXyxXXEZ+Wraqqis8///whbUPThLx8+XKePHky79mzJy0/MCJi\nr9fLhYWFCa9bU1PDX/ziF7myspK/9rWvaf7LB8Dnn38+X3LJJfyjH/2IV69ePahtNDU1pT3u2tpa\nnjNnzpC2oeeEbDKZePHixWk7ouru7ubDhw/zzp07E163sbGRi4qK2OFw6Kby9Hg87PF4uKGhgVtb\nWzWPJ962YcMG7urqGtI24u2LKZn2tmHDBsydOxdLlixJxeY/xu12IxAIoKCgACdOnEho3bfffhvj\nxo3DqlWrsHDhQgCAoihgZoTD4VSEe1ajRo3Chx9+iL/97W/o7u6GzWbD1KlTB7Utt9ud5OgGduzY\nMdjt9rR/brpYrVZMnjwZH3zwAf785z+n/PPsdjvOO+88dHd3J7zu97//fVx11VUYNWoU3G43Xnzx\nRfj9fhARtmzZkoJoz2727Nnw+/2orq7GzJkzsXr1ahw7diytMQzF3r178Y1vfCM9H5aKSiLWMmUc\nc9q0aWw2m7mzs5Mfe+wxnjFjBk+fPj3tcTz55JP8mc98hkePHs1ut1vzn8tg2vPPPz+k9fVcIWdi\nmz17Nns8Hi4vL+fx48drcr6kqqqKvV4vHzlyhKdMmaL5z0SLpmmFnGn+8pe/AAAKCgqQm5uLo0eP\n4uDBg6isrERxcXHKvs1LS0ths9lw5MgRbN26FVarFW+88QaCwWBGTV0S+mQymXDixAkUFhbixhtv\nxLhx4zB58mQsWbIEJ0+exJ49e1LyuQ6HA7feeitUVcXjjz+OxsZG1NXVYfny5bjkkkuwe/fulHxu\nVpAK+ePtm9/8Ji9dupQ3btyY0gn3o0aN4s2bN/PChQt5xowZvHDhQs33fahNKmT9No/Hw8eOHeM1\na9ZwXl5eyj7HaDRyRUUFz58/n0ePHs0ej0fzfde6xd0XJSF/vFksFs7JyeGGhga+5ZZb2O128/e+\n972kbDs/P5+9Xi+XlJTwK6+8wnl5ebx27Vo2GAxDnqGghyYJWb/N4XBwVVUVNzU1cV1dXc+0s2Rs\nu66ujqdOncrXXnst79y5kzdv3swlJSXs9Xp1Pa00XU0SchKazWZjj8fDzzzzDBcUFCRlmzNmzOCm\npibesWMH5+XlcU1NDT/11FOa72uymiRk/bfy8nK2Wq0cDof5lVdeSco2y8rKeMOGDfz000/3zJev\nqKjQfF/10iQhJ7ktXryYr7nmGt6/fz8XFBRwZWVlQuvX1dWxxWLhLVu28OnTpzXfn1Q1SciZ1QoL\nC/m9995jo9HILpeLDQZDQuvPnj2bVVXlSy+9lHfs2KH5/ui1xdsXs+J+yOlQWlqK1157DcuWLcPe\nvXvR2NgIVVUHXC92P+bt27dj6tSp+OCDD5Cfn5/qcIWIi6qq+OEPf4ibb74Zhw4dwoQJEzBixIhz\nruNwOFBWVoby8nL8/Oc/h81mw6lTp3DTTTelKeosJhVyYu0zn/kMHzhwgGtqagacGjd9+nQuKSnh\nbdu28QsvvMBms1n3VyUNtUmFnJmtrKyMt2/fzna7fcD7vKiqyjabja+//nouKSnh2bNnax6/3ptU\nyCnS1taGadOmwWQy4bbbboPJZMKiRYv6Xfall17CunXrUFtbiwceeADAR1PshNCTK664AqtXr0Zx\ncTGWLVuG2bNnY+XKlf0ua7PZsGHDBvzhD38AAJw4caLnXuNiaCQhJ2jnzp1obm7GgQMHsHHjRrz7\n7rtobW3td1mXy4WDBw+irKwMFRUV6OrqQldXV5ojFmJga9euxZYtW5CXl4eWlhZ8/etf7yki+nrn\nnXdw77334uTJkzCbzXjnnXcGdTWh+LiU3g85U+/Jey6TJk3ClClTEAgEsG7dOhARgsFgv080sFgs\n+MQnPoHKykp84QtfwAMPPIAtW7ags7NTg8jT4/nnn8eVV1456PVZ7oesiaVLl/ZcWr1r1y6cPHkS\n4XAYfr//Y8sWFxfD5/Nh1qxZeO+99zBy5Ei88sorCAaDGkSeGeLt13KlXoJcLhfuvvtuTJ8+HXPn\nzsVvf/vbsy7b2dkJu92OTZs2oaCgAFOmTMGBAwdw4MCBNEYsxMCWLl2KpqYmLFq0CA6HAx0dHWdd\ntqGhAYqiYO/evVi3bh3mz5+fxkiznJzUO3erqqrinJwc9vv9XFtby8uXLx/S9jZt2sS7d+/m4uJi\nnjdvnub7l+wmJ/UyoxkMBr7wwgvZbDbzd77znSFPxTx69Ci3trZyeXk5l5SUaL5/emtyUi8JTCYT\n6uvr4ff78dOf/hT5+flDvsfEPffcA6/Xi02bNmHnzp2wWCwwGuVARaRP7JzGpZdeipkzZ+I3v/kN\nZs6cOaRt3njjjaipqcHixYsRDAYxffp06deDIRXyub/1L7/8cgaQ9HslT5s2jXfv3s07duzgb37z\nm5rva7KaVMj6bzt37mQi4ilTpnBxcXFStz1ixAhetmwZ33vvvQlfPJXNLd6+KCf1eikqKkJLSwsm\nTZqEjo4OzJkzB7t27cLBgwd7HsKYLHl5eXA6nXj00UdRW1uL0tJSNDc3o7m5GVarFe3t7Un7rHSS\nk3r6k5+fj7lz5yI/Px+qqsLpdOJTn/oU9u3bh4cffhh//etfk/ZZl19+OWpqamC1WmEwGLBr1y68\n/fbb8Hq92LJly7C9i2Hc/Vq3C3sKAAAHaElEQVQq5I/a7bffzkVFRfzCCy/w448/nrbP/epXv8p/\n//vfua6ujmtqajLuAay9m1TI+msej4crKir4iSee4Ndffz1tn1tQUMBr1qzh1157jcvKyob1TYbi\n7ouSkMF2u52rq6vZ6XTyq6++yitWrEjrY29sNhs7nU7+5Cc/yffffz+3trZm5A3qq6qqeMmSJUPa\nhiTk5LYvf/nL7HQ6uaSkhK+++mr+yle+krbPttlsfO+997LP5+Pjx4+z1+vl++67T/OfSaJt8+bN\nXFVVNaRtSEJOoE2fPp3vuusu/vWvf81ut5t/8IMfaBLHddddx4qicGFhIa9cuVLzn0uizWq18tVX\nXz2kbUhCTl5TVZW/+MUv8oYNG9hutyf0EOBkNoPBwGazmbds2TLkWUpatNLSUt62bduQthFvX0zp\nGHJbWxtyc3MTWWVQjEYjnE4n9u3bh5EjR8a1jsvlgtVqBQBs27YNTU1NuPPOO7F7924oitLvhPhU\nU1UVoVAIoVAIZrMZn/3sZ+H1erF582bY7faExvpaWlqQl5eXwmg/zmAwoLu7G4qiDHobrPMxZIvF\ngn379p1znm6yhMNhLF68GOFwGAcPHoxrnR//+MfYtGkT/vGPf+DJJ5/E/PnzoSgKjEYjFEVBS0tL\niqP+uOLiYiiKgo6ODuTl5aGpqQm1tbWor6/HX/7yl4R+lsyc9n14//33cfHFFw/pKtu4+3U2VBIe\nj4dzc3PjusG7xWJhi8XCVVVVvGPHDj527Bg7nU6urKzkm266SfN9ibXy8nKuqKjgN998k2+44Qa+\n9dZb2Wg0MhFxNIGcs2XK0UnfJhXymX11wYIFcT3f0ev1ssPh4BEjRvALL7zAfr+fKyoq+MEHH+Tq\n6mrN9yXWzGYz33HHHfzGG2/wsmXLuKCggCsqKrigoIBNJpPm8aWq6WLIIl3N6XT2tIGWXbVqFVdX\nV/P69eu5ra1N89gHagsXLuTq6mquqanhjRs38vjx47moqGjA9SQhZ36/TqRVVFQwEfGkSZP4yJEj\nmsczULNYLHzy5Enu7OxkIuLx48fr6osj2S3evjhsLgwpLi5GaWkpHnnkEcyfPx933XUXzjvvPK3D\nGlA4HMZ7770Hk8mEuro6XHHFFcjLy0NhYSHMZrPW4QmNud1ufOUrX8Err7yCCRMmwGg0YunSpVqH\nNSCj0YgVK1bgjjvuwKJFizBx4kS8/fbbeOqppzBnzhytw9NMSseQ06X3XOfm5uZ+l7nsssswadIk\nbNy4EUeOHMG4ceOSOq84XVRVxapVq1BQUIB3330Xq1at6ne5TJsDHqP3MWS9MRqNmDdvHl566SXM\nnDkTL774otYhDcqnP/1pLFq0CG+88Qb27NmDvXv3ah1SUsXbr7M6IVssFlx44YVYs2YNPvnJT+L4\n8eMoLS2F2WxGIBDIyIsvjEYjHA4HwuEwbrrpJnzhC19ATU0N/H4/XC4XmpqaAEhCToRe+/XZXHnl\nlcjNzcV3v/tdPP3001i/fj0uuOACMDN+97vfZeTFF5MnT0ZlZSUuvvhieL1e3H///XC73VAUBZs3\nb87IfeptWJ3UO9sY8sSJE/m6667jt956i1esWKF5nMlqbrebL7roIq6urubt27fzbbfdxvn5+Tx5\n8uSeZWQMOfP79dlaeXk5L1myhB966CGeOHGi5vEkqxkMBlZVla1WK2/evJl/8YtfcEFBASuKonls\nQ23x9sWsrJCrqqpQV1eHRx55BH//+9/R0dGBQCCQNfdrNRg+GvoPh8OYP38+6uvrcd111+G2224D\nIBVyIvTar/u64oorcOrUKezfvx//+te/8LnPfQ579uyBz+fTOrSkMBgMsFgs8Hg88Pl88Pl88Hg8\nUFUVqqpi9+7dWoc4aPH266w4qcfM8Pv96OzshKqqKCgoQFFRERRFQVdXF3w+X9YkYyCShGMNAMaO\nHQufz4eVK1fiV7/6FVRVlSc4ZAEigs1mg8VigdPpxLx581BfX4+lS5fiS1/6El5++eWsScZApF/7\nfD4cPHgQ9fX1cDqdCAaDWL9+PbZu3YoxY8Zg7NixWoeZUllRIRcWFqK9vR35+flYs2YN9uzZg3vu\nuUfrsNJu1qxZeOutt/DQQw+hq6sLS5Ys0TqkhEmF/BGDwQC73Q5mxtixY/H73/8ebrdb67DSjojw\n8ssvY/fu3cjPz8f111+vdUgJi7dfZ8UNS2PjL/X19bjlllswdepUrUPSRENDA0wmE+644w4UFhZq\nHY4YIkVRsGjRIowaNQqBQAAVFRVah6SJb33rW9i/fz+2bt2KhQsXah1OSmVFhSyyh1TIIhsNqzFk\nIYTIBpKQhRBCJyQhCyGETkhCFkIInZCELIQQOiEJWQghdEISshBC6IQkZCGE0AlJyEIIoROSkIUQ\nQickIQshhE4kenOhUwCOpCIQIQCM1uhzpV+LVIq7Xyd0cyEhhBCpI0MWQgihE5KQhRBCJyQhCyGE\nTkhCFkIInZCELIQQOiEJWQghdEISshBC6IQkZCGE0AlJyEIIoRP/H2BXfJctB9bQAAAAAElFTkSu\nQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x2690acb9f60>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "laplacian64 = cv2.Laplacian(img, cv2.CV_64F)\n",
    "sobelx64 = cv2.Sobel(img,cv2.CV_64F,1,0,ksize=5)\n",
    "sobely64 = cv2.Sobel(img,cv2.CV_64F,0,1,ksize=5)\n",
    " \n",
    "laplacian = np.uint8(np.absolute(laplacian64))\n",
    "sobelx = np.uint8(np.absolute(sobelx64))\n",
    "sobely = np.uint8(np.absolute(sobely64))\n",
    "\n",
    "plt.subplot(2,2,1),plt.imshow(img,cmap = 'gray')\n",
    "plt.title('Original'), plt.xticks([]), plt.yticks([])\n",
    "plt.subplot(2,2,2),plt.imshow(laplacian,cmap = 'gray')\n",
    "plt.title('Laplacian'), plt.xticks([]), plt.yticks([])\n",
    "plt.subplot(2,2,3),plt.imshow(sobelx,cmap = 'gray')\n",
    "plt.title('Sobel Y'), plt.xticks([]), plt.yticks([])\n",
    "plt.subplot(2,2,4),plt.imshow(sobely,cmap = 'gray')\n",
    "plt.title('Sobel Y'), plt.xticks([]), plt.yticks([])\n",
    " \n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nBgwYuEvwfwC6gxLCfzEodwAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x2690b8feda0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from matplotlib import pyplot as plt\n",
    " \n",
    "img = cv2.imread('gradients.jpg',0)\n",
    " \n",
    "laplacian = cv2.Laplacian(img, cv2.CV_64F)\n",
    "sobelx = cv2.Sobel(img,cv2.CV_64F,1,0,ksize=5)\n",
    "sobely = cv2.Sobel(img,cv2.CV_64F,0,1,ksize=5)\n",
    "\n",
    "laplacian64 = cv2.Laplacian(img, cv2.CV_64F)\n",
    "sobelx64 = cv2.Sobel(img,cv2.CV_64F,1,0,ksize=5)\n",
    "sobely64 = cv2.Sobel(img,cv2.CV_64F,0,1,ksize=5)\n",
    " \n",
    "laplacian = np.uint8(np.absolute(laplacian64))\n",
    "sobelx = np.uint8(np.absolute(sobelx64))\n",
    "sobely = np.uint8(np.absolute(sobely64))\n",
    "\n",
    "plt.imshow(laplacian,cmap = 'gray')\n",
    "plt.title('Laplacian'), plt.xticks([]), plt.yticks([])\n",
    " \n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Face Recognition  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "net = cv2.dnn.readNetFromCaffe('deploy.prototxt.txt', 'res10_300x300_ssd_iter_140000.caffemodel')\n",
    " \n",
    "image = cv2.imread('italy2018.jpg')\n",
    "(h, w) = image.shape[:2]\n",
    "\n",
    "blob = cv2.dnn.blobFromImage(cv2.resize(image, (300, 300)), 1.0, (300, 300), (104.0, 177.0, 123.0))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "net.setInput(blob)\n",
    "detections = net.forward()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "-1"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "confidence_threshold = 0.5\n",
    "\n",
    "for i in range(0, detections.shape[2]):\n",
    "\n",
    "    confidence = detections[0, 0, i, 2]\n",
    " \n",
    "    if confidence > confidence_threshold:\n",
    "        box = detections[0, 0, i, 3:7] * np.array([w, h, w, h])\n",
    "        (startX, startY, endX, endY) = box.astype(\"int\")\n",
    " \n",
    "        text = \"{:.2f}%\".format(confidence * 100)\n",
    "        y = startY - 10 if startY - 10 > 10 else startY + 10\n",
    "        cv2.rectangle(image, (startX, startY), (endX, endY),(0, 0, 255), 2)\n",
    "        cv2.putText(image, text, (startX, y), cv2.FONT_HERSHEY_SIMPLEX, 0.45, (0, 0, 255), 2)\n",
    " \n",
    "cv2.imshow(\"Output\", image)\n",
    "cv2.waitKey(0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
